/*
 * Elemento.h
 *
 *  Created on: 03/04/2010
 *      Author: administrador
 */

#ifndef ELEMENTO_H_
#define ELEMENTO_H_
#include <string>
#include <iostream>
#include <sstream>
#include "Clave.h"

using namespace std;

class Elemento {
private:

	Clave clave;

	string *valor;

public:

	Elemento(Clave clave, string* valor);

	Elemento();

	virtual ~Elemento();

	Clave getClave();

	string* getValor();

	void setValor(string* valor);

	bool operator<(const Elemento &elemento2);

	bool operator==(const Elemento &elemento2);

	bool operator>(const Elemento &elemento2);

	bool operator<=(const Elemento &elemento2);

	bool operator>=(const Elemento &elemento2);

	int getTamanio();

	Elemento* clonar();

	void serializar(c_bloque *destino=NULL);

	void hidratar(c_bloque *destino=NULL);
};

#endif /* ELEMENTO_H_ */
